package pe.edu.claretiano.admisionmatricula.admision.daoimpl;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;

import pe.edu.claretiano.admisionmatricula.admision.dao.ApoderadoDao;
import pe.edu.claretiano.admisionmatricula.bean.Apoderado;
import pe.edu.claretiano.admisionmatricula.bean.Postulante;
import pe.edu.claretiano.admisionmatricula.bean.ProcesoAdmisionMatricula;
import pe.edu.claretiano.admisionmatricula.factory.MyBatisConnectionFactory;

public class ApoderadoDaoImpl implements ApoderadoDao {
	
	private final static Logger logApoderadoDaoImpl = Logger
			.getLogger(ApoderadoDaoImpl.class);
	
	private SqlSessionFactory sqlSessionFactory;
	
	public ApoderadoDaoImpl(){
		sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory();
	}

	@Override
	public Integer insertarApoderado(Apoderado objApoderado) {
		
		SqlSession session = sqlSessionFactory.openSession();
		Integer resultado=0;
		try {
			resultado=session.insert("Apoderado.insertarApoderado", objApoderado);			
			session.commit();			
		} catch (Exception ex) {
			logApoderadoDaoImpl.error(ex.getMessage());				
			session.rollback();
		} finally {
			session.close();
		}
		return resultado;
	}

	@Override
	public Apoderado obtenerApoderado(Postulante objPostulante) {
		SqlSession session = sqlSessionFactory.openSession();
		Apoderado apoderado = null;
		try {
			apoderado = (Apoderado) session
					.selectOne("Apoderado.obtenerApoderado",objPostulante);
		} catch (Exception ex) {
			logApoderadoDaoImpl.error(ex.getMessage());
		} finally {
			session.close();
		}

		return apoderado;
	}

}
